//
//  ManagerProtocol.swift
//  XHWalletUtils
//
//  Created by xinph on 2020/5/16.
//  Copyright © 2020 xinph. All rights reserved.
//

import Foundation

/// IO操作
protocol IOProtocol {
    /// 写入内存并同步到磁盘
    /// - Parameter element: 待添加元素
    static func writeWallet(_ account: Account, wallet: Wallet)
    
    /// 从磁盘读取钱包并写入内存
    /// - Parameter cls: 读取对象类型
    static func updatedWallet<Objc: Wallet>(_: Objc.Type, key: String?) -> Objc?
    
    /// 从磁盘读取所有钱包对象并写入内存
    /// - Parameter cls: 读取对象类型集合
    static func readAllWallets<Objc: Wallet>(_ cls: Objc.Type...) -> [Objc]?
    
    /// 内存初始化所有的钱包对象
    /// - Parameter wallets: 钱包对象
    static func cacheWallet(_ wallet: Wallet)
}
